package com.cloudbroker.bcs.platform.dav.bizapi.t2service.operate;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew.IFSDavViewPointFuncIds;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.back.SelfViewpointBack;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.back.SelfViewpointResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.vo.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.BranchNoPageForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.ViewpointCommentOperateList;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.ViewpointDetailDavList;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.ViewpointManangeResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.ViewpointOperateList;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.ViewpointReviewData;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.ViewpointCommentOperateDeleteForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.ViewpointCommentOperateListForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.ViewpointDetailListForm;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by lnq on 2016/12/29.
 */
@ServiceModule
public interface ViewpointManageT2BizService {

    /**
     * 是否开启普通观点审核
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_REVIEW_STATUS, desc = "是否开启普通观点审核")
    public HSBCPSBackVO funcViewpointReviewManage(ViewPointReviewForm form);

    /**
     * 获取普通观点审核配置
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_STATUS_MANAGE, desc = "获取普通观点审核配置")
    public ViewpointReviewData funcViewpointReviewStatusManange(ViewpointReviewManage form);

    /**
     * 获取普通观点管理列表
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_LIST_MANAGE, desc = "获取普通观点管理列表")
    public ViewpointManangeResult funcViewpointListManage(SelfViewpointForm form);

    /**
     * 普通观点是否通过审核
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_REVIEW_MANAGE, desc = "普通观点是否通过审核")
    public HSBCPSBackVO funcViewpointReviewByIdManage(ViewpointReviewManageForm form);

    /**
     * 管理中台观点列表页面
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_OPERATE_LIST_BY_TENANT, desc = "管理中台观点列表页面")
    public ViewpointOperateList funcViewpointOperateListByTenant(BranchNoPageForm form);

    /**
     * 管理中台观点评论列表页面
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_COMMENT_OPERATE_LIST_BY_TENANT, desc = "管理中台观点评论列表页面")
    public ViewpointCommentOperateList funcViewpointCommentOperateListByTenant(ViewpointCommentOperateListForm form);

    /**
     * 管理中台观点评论批量删除
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_COMMENT_DELETE, desc = "管理中台观点评论批量删除")
    public HSBCPSBackVO funcViewpointCommentDelete(ViewpointCommentOperateDeleteForm form);


    /**
     * 获取自媒体观点管理列表
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_SELF_VIEWPOINT_LIST, desc = "获取自媒体观点管理列表")
    public SelfViewpointResult funcSelfViewpointsList(SelfViewpointForm form);

    /**
     * 获取单个自媒体观点的详情
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_SELF_VIEWPOINT_BY_ID, desc = "获取自媒体观点管理列表")
    public SelfViewpointBack funcSelfViewpointById(SelfViewpointByIdForm form);

    /**
     * 是否开启自媒体观点审核
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_SELF_VIEWPOINT_REVIEW, desc = "是否开启自媒体观点审核")
    public HSBCPSBackVO funcSelfViewpointReview(SelfViewpointReviewForm form);

    /**
     * 自媒体观点是否通过审核
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_SELF_VIEWPOINT_STATUS, desc = "自媒体观点是否通过审核")
    public HSBCPSBackVO funcSelfViewpointReviewStatus(SelfViewpointStatusForm form);
    

    /**
     * 大V观点信息列表
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFund.FUNC_VIEWPOINT_DETAIL_LIST_BY_DAV, desc = "大V观点信息列表")
    public ViewpointDetailDavList funcBrokerViewpointDetailList(@ServiceParam("param") ViewpointDetailListForm param);

}
